package controller

//
// import (
// 	"fmt"
// 	"github.com/GoAdminGroup/go-admin/context"
// 	"github.com/GoAdminGroup/go-admin/modules/db"
// 	"github.com/GoAdminGroup/go-admin/plugins/admin/modules/table"
// 	"github.com/GoAdminGroup/go-admin/template"
// 	"github.com/GoAdminGroup/go-admin/template/types"
// 	"github.com/GoAdminGroup/go-admin/template/types/form"
// 	"github.com/beherochuling/beesoft_api/app/dao"
// 	"github.com/beherochuling/beesoft_api/app/helper/helper"
// 	"github.com/gogf/gf/v2/util/gconv"
// )
//
// var File = fileController{}
//
// type fileController struct {
// }
//
// const (
// 	MediaFileMorphTypeOther     = 0
// 	MediaFileMorphTypeText      = 1
// 	MediaFileMorphTypeDocument  = 2
// 	MediaFileMorphTypeImage     = 3
// 	MediaFileMorphTypeAudio     = 4
// 	MediaFileMorphTypeVideo     = 5
// 	MediaFileMorphTypeDirectory = 11
// )
//
// func (r fileController) GetTable(ctx *context.Context) table.Table {
// 	t := getDefaultTable(ctx)
//
// 	info := getDefaultInfoPanel(t).
// 		SetTitle("文件").
// 		SetDescription("文件描述").
// 		SetTable(dao.Files.Table()).
// 		SetFilterFormLayout(form.LayoutThreeCol).
// 		// 分页
// 		HidePagination().
// 		// SetPageSizeList([]int{100, 200}).
// 		// SetDefaultPageSize(100).
//
// 		// AddButtonRaw().
// 		// AddButton().
// 		// AddActionIconButton().
// 		// AddActionButtonFront().
// 		// AddActionButton().
//
// 		// SetAutoRefresh(10). // 自动刷新
// 		// SetAction().
// 		HideFilterButton().
// 		HideNewButton().
// 		HideExportButton().
// 		HideRowSelector().
// 		HideFilterArea().
// 		HideQueryInfo()
// 	// HideDetailButton().
// 	// HideEditButton().
// 	// HideDeleteButton()
//
// 	info.
// 		AddField("标识", dao.Files.Columns().Slug, db.Varchar).
// 		FieldSortable().
// 		FieldFilterable().
// 		AddField("标题", dao.Files.Columns().Title, db.Varchar).
// 		FieldSortable().
// 		FieldFilterable(types.FilterType{
// 			HelpMsg: template.HTML("支持模糊匹配"),
// 		}).
// 		AddField("类型", dao.Files.Columns().MorphType, db.Int).
// 		FieldDisplay(func(value types.FieldModel) interface{} {
// 			slug := "others"
// 			title := "其它"
//
// 			switch gconv.Int(value.Value) {
// 			case MediaFileMorphTypeText:
// 				slug = "texts"
// 				title = "文本"
// 			case MediaFileMorphTypeDocument:
// 				slug = "documents"
// 				title = "文档"
// 			case MediaFileMorphTypeImage:
// 				slug = "images"
// 				title = "图片"
// 			case MediaFileMorphTypeAudio:
// 				slug = "audios"
// 				title = "音频"
// 			case MediaFileMorphTypeVideo:
// 				slug = "videos"
// 				title = "视频"
// 			case MediaFileMorphTypeDirectory:
// 				slug = "directories"
// 				title = "目录"
// 			case MediaFileMorphTypeOther:
// 				fallthrough
// 			default:
// 			}
//
// 			return helper.HyperLink(fmt.Sprintf("%s?id=%d", slug, value.Row["morph_type"]), title)
// 		}).
// 		FieldSortable().
// 		FieldFilterable().
// 		AddField("类型", dao.Files.Columns().Type, db.Int).
// 		FieldSortable().
// 		FieldFilterable(types.FilterType{
// 			FormType: form.SelectSingle,
// 			Options: types.FieldOptions{
// 				{
// 					Text:     "文本",
// 					Value:    gconv.String(MediaFileMorphTypeText),
// 					Selected: false,
// 				},
// 				{
// 					Text:     "文档",
// 					Value:    gconv.String(MediaFileMorphTypeDocument),
// 					Selected: false,
// 				},
// 			},
// 		}).
// 		AddField("资源 ID", dao.Files.Columns().ResourceId, db.Varchar).
// 		FieldSortable().
// 		FieldWidth(100).
// 		FieldFilterable().
// 		AddField("后缀名", dao.Files.Columns().Extension, db.Varchar).
// 		FieldSortable().
// 		FieldFilterable().
// 		AddField("大小", dao.Files.Columns().Size, db.Int).
// 		FieldDisplay(func(value types.FieldModel) interface{} {
// 			return helper.StorageSize(gconv.Int64(value.Value))
// 		}).
// 		FieldSortable().
// 		FieldFilterable().
// 		AddField("创建时间", dao.Files.Columns().CreatedAt, db.Datetime).
// 		FieldSortable().
// 		FieldFilterable(types.FilterType{
// 			FormType: form.DatetimeRange,
// 		}).
// 		AddField("更新时间", dao.Files.Columns().CreatedAt, db.Datetime).
// 		FieldSortable().
// 		FieldFilterable(types.FilterType{
// 			FormType: form.DatetimeRange,
// 		})
//
// 	getDefaultFormPanel(t).
// 		SetTitle("修改文件").
// 		SetDescription("修改文件描述").
// 		SetTable(dao.Files.Table())
//
// 	return t
// }
